Подписаться
Опубликовано

Синхронное обновление чекбоксов через API

Автор
  • Имя
    Счастливый тимлид | ♥ Frontend
    Telegram

Коллеги, прямое включение с груминга. Сейчас расскажу как одно упущение в контракте API может привести к усложнению разработки и тестирования, костылям и куче лишнего кода.

Представьте: необходимо реализовать список с чекбоксами. Каждый раз, когда пользователь меняет состояние чекбокса, вы должны отправить на сервер запрос с ID этого элемента и в ответ получите его обновлённое состояние. Заметьте, по техническому заданию, включённые чекбоксы должны быть наверху списка, а выключенные — внизу. Как будете решать такую задачу?

Думаю на ум приходит что-то такое: после получения нового состояния элемента обновить его на клиенте, пересортировать список, а чтобы избежать рассинхрона с сервером — сделать дополнительный запрос на обновление всего списка. Звучит логично! Но вот что ещё идет в комплекте с этим решением: лишний код, возможные баги, да и целая куча ненужных запросов.

Есть другой путь. Договариваемся, что на каждое изменение сервер возвращает вам сразу весь список с актуальным состоянием и порядком. Тогда:

Клиент после каждого изменения получает актуальные данные Состояние на клиенте после каждого запроса синхронизируется с состоянием на сервере На клиенте практически отсутствует логика, а значит и баги. Заменить старое состояние на новое сможет даже джун. Реализация проще, а значит быстрее. Менеджер будет доволен.

Выглядит круто, не так ли?

Безусловно, это решение подойдёт не всегда: если у вас большой массив данных или оооочень частые обновления, то возвращать каждый раз полное состояние может оказаться не ок.

А как сделано у вас на проекте?

© Счастливый тимлид

Счастливый тимлид | ♥ Frontend
2204 подписчика
692 поста

Закрепленные

Из подборки #frontend

Опубликовано

Телеграмовский сосун (или какун, как правильно?)

Телеграмовский сосун суммирует мой лонгрид – стоит ли публиковать полную версию?
Опубликовано

Итоги

Итоги года блога тимлида: количество подписчиков, менторство, сообщество ИТ‑блогеров, планы на 2025
Опубликовано

Поделитесь вашими любимыми мемами уходящего года

Поделитесь любимыми мемами уходящего года

Свежие посты

Опубликовано

Телеграмовский сосун (или какун, как правильно?)

Телеграмовский сосун суммирует мой лонгрид – стоит ли публиковать полную версию?